package com.qhww.wechatmsg.mp.util;

import com.qhww.wechatmsg.mp.entity.MessageData;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;

/**
 * 发送模板信息（ 在 WxChatTemplateMsgServiceImpl 拼接对应的模板参数信息）
 * @author wangsong
 * @mail 1720696548@qq.com
 * @date 2020/9/30 0030 17:29 
 * @version 1.0.0
 */
@SuppressWarnings("all")
@Component
@Slf4j
public class WxMpTemplateMsgTestUtil {

    //模板id
    @Value("${msgSetting.id}")
    private String tempId;

    //详情页
    @Value("${msgSetting.detailPage}")
    private String detailPage;
    @Autowired
    private WxMpService wxMpService;

    /**
     * 发送模板消息通知（测试模板）
     * @param openId 微信用户的openId
     * @param content 发送的内容
     */
    public void sendTest(MessageData message) {
        //        {{first.DATA}}
//        审核结果：{{keyword1.DATA}}
//        申请人：{{keyword2.DATA}}
//        项目名称：{{keyword3.DATA}}
//        {{remark.DATA}}
        // 此处的 key/value 需和模板消息对应
        List<WxMpTemplateData> wxMpTemplateDataList = Arrays.asList(
                new WxMpTemplateData("first", message.getFirst(), "#1989fa"),
                new WxMpTemplateData("keyword1", message.getStatus(),"#1989fa"),
                new WxMpTemplateData("keyword2", message.getChargeUser()),
                new WxMpTemplateData("keyword3", message.getTitle()),
                new WxMpTemplateData("remark", "更多信息请登录重大项目综合管理平台查看详情","#1989fa")
        );

//        // 此处的 key/value 需和模板消息对应
//        List<WxMpTemplateData> wxMpTemplateDataList = Arrays.asList(
//                new WxMpTemplateData("first", message.getFirst(), "#1989fa"),
//                new WxMpTemplateData("title", message.getTitle()),
//                new WxMpTemplateData("status", message.getStatus()),
//                new WxMpTemplateData("info", message.getInfo()),
//                new WxMpTemplateData("chargeUser", message.getChargeUser()),
//                new WxMpTemplateData("handleTime", message.getHandleTime()),
//                new WxMpTemplateData("remark", "更多信息请登录重大项目综合管理平台查看详情","#1989fa")
//        );
        WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
                .toUser(message.getOpenid())
                .templateId(tempId)
                .data(wxMpTemplateDataList)
                .url(detailPage+"?id="+message.getProjectId())
                .build();
        try {
            // 发送
            wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
        } catch (WxErrorException e) {
            log.info("模板信息发送失败：" +e.getMessage());
            log.debug(e.toString());
        }
    }
}
